package grape.house.rest.buildingroom.vo;
import grape.common.rest.vo.BaseIdVo;

import grape.common.service.trans.TransBy;
import grape.house.service.building.api.IBuildingService;
import grape.house.service.buildingunit.api.IBuildingUnitService;
import grape.house.service.estate.api.IEstateService;
import grape.house.service.estateapartmentlayout.api.IEstateApartmentLayoutService;
import grape.house.service.propertytype.api.IPropertyTypeService;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 房屋表
 * </p>
 *
 * @author yangwei
 * @since 2020-09-17
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="房屋数据响应对象")
public class BuildingRoomVo extends BaseIdVo<String> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "编号，唯一")
    private String code;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "名称别名")
    private String nameAlias;

    @ApiModelProperty(value = "楼盘id")
    private String estateId;

    @TransBy(type = IEstateService.trans_estate_name,byFieldName = "estateId")
    @ApiModelProperty(value = "楼盘名称")
    private String estateName;

    @ApiModelProperty(value = "楼栋id")
    private String buildingId;

    @TransBy(type = IBuildingService.trans_building_name,byFieldName = "buildingId")
    @ApiModelProperty(value = "楼栋名称")
    private String buildingName;

    @ApiModelProperty(value = "单元id")
    private String buildingUnitId;

    @TransBy(type = IBuildingUnitService.trans_building_unit_name, byFieldName = "buildingUnitId")
    @ApiModelProperty(value = "单元名称")
    private String buildingUnitName;

    @ApiModelProperty(value = "在第几层")
    private Integer onFloor;

    @ApiModelProperty(value = "层高")
    private Float floorHeight;

    @ApiModelProperty(value = "户型id")
    private String estateApartmentLayoutId;

    @TransBy(type = IEstateApartmentLayoutService.trans_estate_apartment_layout_name,byFieldName = "estateApartmentLayoutId")
    @ApiModelProperty(value = "户型名称")
    private String estateApartmentLayoutName;

    @ApiModelProperty(value = "使用/套内面积")
    private Float usableArea;

    @ApiModelProperty(value = "分摊面积")
    private Float shareArea;

    @ApiModelProperty(value = "建筑面积，总面积，冗余分摊面积和使用面积之和")
    private Float buildArea;

    @ApiModelProperty(value = "物业类型id")
    private String propertyTypeId;

    @TransBy(type = IPropertyTypeService.trans_property_type_name,byFieldName = "propertyTypeId")
    @ApiModelProperty(value = "物业类型名称")
    private String propertyTypeName;
}
